'I wrap up an almost autonomous collection of interactors that can be scrolled arbitrarily, in any combination of horizontal and vertical directions. I cache the visual representation of my components so that they do not have to render themselves entirely onto my graphicsContext within some clipping rectangle every time they are scrolled. There are obviously some updating issues to be addressed here, since updates into the localPixmap must also make it onto the enclosing pixmap.
component (Interactor) the interactor which I scroll
offest (Point) the offset (due to scrolling) of my component
visibleExtent (Point) the amout of the localPixmap (from the offset) that can be
seen (excludes the scrollbars)
localPixmap (Pixmap) the cached visual representation of my component
localGraphicsContext (GraphicsContext) a cached graphicsContext on the localPixmap
[h|v]Scroller ([Horizontal | Vertical]Scrollbar) either the relevant type of scrollbar,
or nil for no scrollbar in that dimension
rendered (Boolean) true if the component has already rendered itself on the localPixmap'!